package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 洗衣机故障管理，用于记录洗衣机的故障信息和维修情况对象 hyrj_machine_faults
 *
 * @author ruoyi
 * @date 2024-03-08
 */
public class HyrjMachineFaults extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 故障记录ID，主键，自动增长
     */
    private Long id;

    /**
     * 洗衣机序列号，唯一标识洗衣机
     */
    @Excel(name = "洗衣机序列号，唯一标识洗衣机")
    private String washingMachineSerial;

    /**
     * 故障发生时间，记录故障发生的具体时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "故障发生时间，记录故障发生的具体时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date faultTime;

    /**
     * 故障描述，描述故障的具体情况和表现
     */
    @Excel(name = "故障描述，描述故障的具体情况和表现")
    private String faultDescription;

    /**
     * 维修状态，如待处理、已修复、未解决
     */
    @Excel(name = "维修状态，如待处理、已修复、未解决")
    private String repairStatus;

    /**
     * 维修时间，记录故障修复或处理的具体时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "维修时间，记录故障修复或处理的具体时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date repairTime;

    /**
     * 操作员ID，负责处理故障的人员ID
     */
    @Excel(name = "操作员ID，负责处理故障的人员ID")
    private Long operatorId;

    private String operatorName;

    /**
     * 更换部件，记录维修过程中更换的部件名称
     */
    @Excel(name = "更换部件，记录维修过程中更换的部件名称")
    private String partsReplaced;

    /**
     * 维修费用，记录此次维修的总费用
     */
    @Excel(name = "维修费用，记录此次维修的总费用")
    private BigDecimal repairCost;

    /**
     * 备注，记录关于此次故障的其他重要信息或特殊情况
     */
    @Excel(name = "备注，记录关于此次故障的其他重要信息或特殊情况")
    private String remarks;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setWashingMachineSerial(String washingMachineSerial) {
        this.washingMachineSerial = washingMachineSerial;
    }

    public String getWashingMachineSerial() {
        return washingMachineSerial;
    }

    public void setFaultTime(Date faultTime) {
        this.faultTime = faultTime;
    }

    public Date getFaultTime() {
        return faultTime;
    }

    public void setFaultDescription(String faultDescription) {
        this.faultDescription = faultDescription;
    }

    public String getFaultDescription() {
        return faultDescription;
    }

    public void setRepairStatus(String repairStatus) {
        this.repairStatus = repairStatus;
    }

    public String getRepairStatus() {
        return repairStatus;
    }

    public void setRepairTime(Date repairTime) {
        this.repairTime = repairTime;
    }

    public Date getRepairTime() {
        return repairTime;
    }

    public void setOperatorId(Long operatorId) {
        this.operatorId = operatorId;
    }

    public Long getOperatorId() {
        return operatorId;
    }

    public void setPartsReplaced(String partsReplaced) {
        this.partsReplaced = partsReplaced;
    }

    public String getPartsReplaced() {
        return partsReplaced;
    }

    public void setRepairCost(BigDecimal repairCost) {
        this.repairCost = repairCost;
    }

    public BigDecimal getRepairCost() {
        return repairCost;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public String getRemarks() {
        return remarks;
    }

    public String getOperatorName() {
        return operatorName;
    }

    public void setOperatorName(String operatorName) {
        this.operatorName = operatorName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("washingMachineSerial", getWashingMachineSerial())
                .append("faultTime", getFaultTime())
                .append("faultDescription", getFaultDescription())
                .append("repairStatus", getRepairStatus())
                .append("repairTime", getRepairTime())
                .append("operatorId", getOperatorId())
                .append("partsReplaced", getPartsReplaced())
                .append("repairCost", getRepairCost())
                .append("remarks", getRemarks())
                .toString();
    }
}
